package cc.rengu.igas.bomp.facade;

import cc.rengu.igas.bomp.facade.request.ManualAccoutingStatusQueryRequest;
import cc.rengu.igas.bomp.facade.request.ManualAdjustmentRequest;
import cc.rengu.igas.bomp.facade.request.ManualPaymentRequest;
import cc.rengu.igas.bomp.facade.request.MompPaymentRequest;
import cc.rengu.igas.bomp.facade.response.ManualAccoutingStatusQueryResponse;
import cc.rengu.igas.bomp.facade.response.ManualAdjustmentResponse;
import cc.rengu.igas.bomp.facade.response.ManualPaymentResponse;
import cc.rengu.igas.bomp.facade.response.MompPaymentResponse;
import cc.rengu.igas.bomp.facade.result.Result;

/**
 * 手工调账服务
 * Created by 王成 on 2020/3/21
 */
public interface BompManualAdjustAcctService {
    /**
     * 手工挂账
     *
     * @param manualPaymentRequest 手工挂账请求
     * @return 手工挂账应答
     */
    Result<ManualPaymentResponse> manualPayment(ManualPaymentRequest manualPaymentRequest);

    /**
     * 手工调账
     *
     * @param manualAdjustmentRequest 手工调账请求类
     * @return 手工调账应答类
     */
    Result<ManualAdjustmentResponse> manualAdjustment(ManualAdjustmentRequest manualAdjustmentRequest);

    /**
     * 手工调账或挂账状态查询
     *
     * @param manualAccoutingStatusQueryRequest 手工调账或挂账状态查询请求类
     * @return 手工调账或挂账状态查询应答类
     */
    Result<ManualAccoutingStatusQueryResponse> manualAccoutingStatusQuery(ManualAccoutingStatusQueryRequest manualAccoutingStatusQueryRequest);

    /**
     * 营销打款
     *
     * @param request 请求
     * @return 结果
     */
    Result<MompPaymentResponse> mompPayment(MompPaymentRequest request);
}
